import { actions } from "mirrorx";
// 引入services，如不需要接口请求可不写
import * as api from "./service";
import { Message } from 'tinper-bee';
// 接口返回数据公共处理方法，根据具体需要
import { processData, processData1 } from "utils";

/**
 *          btnFlag为按钮状态，新增、修改是可编辑，查看详情不可编辑，
 *          新增表格为空
 *          修改需要将行数据带上并显示在卡片页面
 *          查看详情携带行数据但是表格不可编辑
 *          0表示新增、1表示修改，2表示查看详情 3提交
 *async loadList(param, getState) {
 *          rowData为行数据
 */

export default {
    // 确定 Store 中的数据模型作用域
    name: "Print",
    initialState: {
        showLoading: false,
    },
    reducers: {
        /**
         * 纯函数，相当于 Redux 中的 Reducer，只负责对数据的更新。
         * @param {*} state
         * @param {*} data
         */
        updateState(state, data) {
            //更新state
            return {
                ...state,
                ...data
            };
        }
    },
    effects: {
        /**
         *参照--请求列表----
         * @param {*} param
         * @param {*} getState
         */

        async getStatus(param, getState) {
            actions.Print.updateState({
                showLoading: true,
            });
            let res = await api.getStatus(param.param);

            if(res.data){
                param.callback && param.callback()
            }else {
                Message.create({ content:  "未配置云打印功能", color: 'warning', duration: 10 });
            }
            actions.Print.updateState({
                showLoading: false,
            });
        },

        async getPrintTmpl(param, getState) {
            actions.Print.updateState({
                showLoading: true,
            });
            let tenantId = await api.getTenantId(param.param);
            let res = await api.getPrintTmpl(param.param);
            if(res.data && res.data.length>0){
                param.callback && param.callback({printTmpl:res.data,tenantId:tenantId.data})
            }else {
                Message.create({ content:  "未配置云打印模板", color: 'warning', duration: 10 });
            }

            actions.Print.updateState({
                showLoading: false,
            });
        },
    }

};
